Software licensing has historically been based on a “trust” model in which the user (i.e., licensee) is presumed to be honest and trustworthy and to abide by the terms of the license. Under the trust model, a software license typically accompanies a software product to explain the terms of use. For instance, the software license might dictate that the program code is to be installed on only one computer, and may be used to make one backup copy.
Common types of licenses include “shrink wrap” licenses, “online” licenses, and “site” licenses. A “shrink wrap” license is a license that accompanies each software product that is sold individually in a shrink-wrapped package through, for example, retail stores. The user is typically assumed to accept the terms of the shrink wrap license upon breaking the seal of the package, or the container that holds the disk itself.
An “online” license is one that accompanies software products that are downloaded online, such as from the Internet. The license is typically presented to the user prior to downloading the code. The user is presented with a choice to accept or reject the license. If the user accepts the license (e.g., by clicking an “Accept” button on the screen), the user is presumed to have accepted the terms of the license and the code is downloaded to the user's computer.
A “site” license is a single license that allows installation of multiple copies of software on many different computers at a particular site or many sites. It is commonly used to sell software to corporations, firms, or other entities having many computers. The purchaser pays for a certain number of copies (e.g., hundreds or thousands), and the site license enables the purchaser to install that number of copies on its computers. The site license is beneficial because the software vendor need not supply a large number of program disks, but merely supplies one or a few copies of the software and lets the purchaser install the copies without violating the agreement.
Unfortunately, enforcing each of the above licenses is impractical, if not impossible in certain situations. Users may, purposefully or inadvertently, make multiple copies of the software code and install it on more computers than the license allows. Yet, software vendors have difficulty monitoring these abuses because they occur in the privacy of the home or company. Thus, it is believed that the software industry loses a large percentage of revenues each year simply due to illegitimate use of software by the licensees.
Another problem with conventional software licensing practices concerns internal monitoring and bookkeeping on the part of large-site licensees. In most cases, the licensees want to comply with the terms of the software licenses, but are unable to adequately track the software as it is used throughout the site. For example, a large corporation might purchase several thousand copies of the software and begin installing the copies. However, computers and personnel change over time and it is difficult to centrally monitor how many copies have been installed, whether the copies have expired, whether they need upgrading, and so forth.
A type of “per-seat” or “per-device” software licensing is terminal server licensing, which provides remote clients with access to terminal server resources such as remotely executable software applications. Terminal server technology, such as that made available by the Windows® 2000 Terminal Services product from Microsoft Corporation of Redmond, Wash., allows a wide variety of different client computer devices including personal desktop computers, laptop computers, notebook computers, handheld computers, Apple Macintosh workstations, UNIX workstations, and the like, to remotely execute applications on a terminal server over virtually any type of network connection. Terminal server licensing permits the monitoring and distribution of purchased software licenses and thus prevents the abuse by users who would make multiple copies of software code and install it on more computers than a license allows.
One method of per-seat terminal server licensing involves the use of a licensing clearinghouse through which customers purchase software licenses which are sent to license servers that maintain an inventory of available software licenses. The license server is responsible for distributing the software licenses to individual clients. It monitors the software licenses that have been granted to clients and continues to distribute licenses as long as non-assigned licenses remain available. Once the supply of non-assigned licenses is exhausted, however, the license server can no longer grant licenses to the clients, and the customer must purchase additional licenses from the license clearinghouse.
Per-seat terminal server licensing is typically enforced (e.g., in the Windows® 2000 Terminal Services product) by putting a “ticket” onto a client machine that indicates the machine is licensed to access the terminal server. When an unlicensed machine talks to a terminal server, the terminal server attempts to get a license for the machine through the license server. The license server provides the “ticket” which gets pushed down onto the client machine, presumably to remain there permanently, so that whenever that particular client machine connects to a terminal server, the terminal server recognizes it as having a license because of its “ticket”.
Although this method of licensing avoids some of the problems encountered in the conventional software licensing schemes described above, such as the abuse by users who make multiple copies of software code and install it on more computers than a license allows, and difficulties with internal monitoring and bookkeeping on the part of large-site licensees, various disadvantages remain.
For example, loss of the per-seat licensing information, or the “ticket”, on a client machine, results in various problems. Loss of the “ticket” on a client machine may occur because of a hardware or software failure, but typically is the result of reinstalling the operating system, reformatting the hard drive, or otherwise refreshing the system prior to giving the machine to a new employee after a previous employee leaves. Once the client machine loses its “ticket”, and then attempts to access a terminal server, the terminal server won't recognize the machine as having a license and will attempt to get a new license from the license server. If the license server has available licenses, it will provide a new “ticket” for the client machine. If not, the machine will not be able to connect to the terminal server. At some point, due to employee turnover and other factors, this process leads to a depletion of a customer's available pool of purchased licenses. The result is that the customer must either purchase extra licenses and make them available on the license server, or attempt to recover the use of prior licenses which became unusable when the original client machines on which they resided were refreshed. The disadvantages of this licensing method therefore include multiple licenses being issued to the same client machine, customers paying for extra licenses which are not being used, and customers having to go through the manual and arduous task of contacting the license clearinghouse and having prior lost licenses made available again on the license server for distribution to client machines.
Accordingly, the need exists for a new approach in managing and enforcing per-seat terminal server software licenses that assists customers in monitoring their own compliance with licensing agreements, ensures that customers comply with licensing agreements, prevents customers from paying for extra licenses that are not needed, and automates the process of reviving lost licenses to avoid the manual task of reclaiming lost licensees through the license clearinghouse.